// 递归
// 循环数组，判断是不是数组，是就再次调用
function flatten(arr) {
    let res = []
    for (let i = 0; i < arr.length; i++) {
       if(Array.isArray(arr[i])) {
        // concat 不改变原数组
           res = res.concat(flatten(arr[i]))
       } else {
           res.push(arr[i])
       }
    }
    return res
}

console.log(flatten([1, [2, 3, [5]]]));


// 利用toString(): 这种方法无法正确处理空数组，且返回的数组中数字是字符串形式